# pragma once

# include <vector>
# include "geometry_details.hpp"
# include "geometry3d.hpp"

namespace geometry { namespace d3 {

  template <typename S>
  inline S& operator<<(S& stream, details::CoordinateObject<double> const& obj) throw() {
    stream << obj.x() << " " << obj.y() << " " << obj.z();
    return stream;
  }


  template <typename S>
  inline S& operator<<(S& stream, std::vector<Point> const& v) throw() {
    for (Point const& p : v)
      stream << p << std::endl;
    return stream;
  }

}}
